from fastapi import FastAPI, File, UploadFile
import uvicorn
from starlette.responses import HTMLResponse
import webbrowser
webbrowser.open("http://127.0.0.1:8000/hello")
html_head='''
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面，任何其他内容都*必须*跟随其后！ -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询（media queries）功能 -->
    <!-- 警告：通过 file:// 协议（就是直接将 html 页面拖拽到浏览器中）访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>
      <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->
  </head>
'''
html_body_start='''
  <body>
    <h1>你好，世界！</h1>

    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery，所以必须放在前边) -->
    <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
'''
form0='''
<form class="form-inline action="?" method="get"">
  <div class="form-group">
    <label for="exampleInputName2">请输入要检索的内容:</label>
    <input type="text" class="form-control" id="exampleInputName2" placeholder="Jane Doe" name="q">
  </div>

  <button type="submit" class="btn btn-default">搜索</button>
</form>
'''
app = FastAPI()
@app.get("/hello")
def scan1(q: str = None):
    if q:

      
        z=html_head+html_body_start+form0+q
    else:
        z=html_head+html_body_start+form0
    return HTMLResponse(content=z)
if __name__ == "__main__":

    uvicorn.run(app, host="0.0.0.0",port=8000,log_level="info")

